package org.itstack.state.order;

/**
 * 已取消状态
 * 订单已取消或退款
 * 
 * 设计原则：
 * - 单一职责：只负责已取消状态的行为
 * - 里氏替换：可以替换抽象订单状态
 */
public class CancelledState implements OrderState {
    
    @Override
    public String getStateName() {
        return "已取消";
    }
    
    @Override
    public String getStateDescription() {
        return "订单已取消或退款";
    }
    
    @Override
    public void handleAction(OrderContext context, OrderAction action) {
        System.out.println(String.format("订单 %s 已取消，无法执行任何操作", context.getOrderId()));
    }
    
    @Override
    public boolean canExecuteAction(OrderAction action) {
        return false; // 已取消的订单无法执行任何操作
    }
}
